package com.park.dao.base;

import java.util.List;

public interface BaseMapper<T> {
	/**
	 * 根据ID删除
	 */
	int deleteByPrimaryKey(Long id);

	/**
	 * 插入
	 */
	int insert(T record);

	/**
	 * 选择型的插入
	 */
	int insertSelective(T record);

	/**
	 * 根据ID查询
	 */
	T selectByPrimaryKey(Integer id);
	
	T selectByPrimaryKey(Long id);

	/**
	 * 选择型的修改
	 */
	int updateByPrimaryKeySelective(T record);

	/**
	 * 选择型的修改（带大文件）
	 */
	int updateByPrimaryKeyWithBLOBs(T record);

	/**
	 * 修改
	 */
	int updateByPrimaryKey(T record);

	/**
	 * 单个查询
	 */
	T selectByModel(T t);

	/**
	 * 不分页查询
	 */
	List<T> selectAll();

	/**
	 * 分页+查询
	 */
	List<T> selectPagination(T t);
	
	/**
	 * 总记录
	 */
	Integer selectTotal(T t);
	
	/**
	 * 批量插入
	 */
	int batchInsert(List<T> records);
	
	/**
	 * 批量更新
	 */
	int batchUpdate(List<T> records);
	
	/**
	 * 批量删除
	 */
	int batchDelete(List<T> records);

	int deleteByModel(T t);

}
